As users gain access to ever more information, recommendation systems are starting to become more popular. A recommendation system typically generates a list of items with which a user may wish to interact. The list could be, for example, a list of items the user may wish to buy in the future or a list of items that the user may wish to be entertained with next, as in a playlist of songs to play immediately.
There are several methods for generating recommendation lists, each having its own limitations. In collaborative filtering, lists are generated by observing usage patterns of many users. The usage patterns are then used to predict what the current user would like. Collaborative filtering is applicable to many media types, (e.g., documents, books, music, movies, etc.). Collaborative filtering is limited in that it does not utilize descriptive metadata of the list items: it only relies on usage patterns. Therefore, collaborative filtering does not utilize items unless they have reached a certain level of usage. Metadata, as employed in the context of this application, refers to data concerning a media object, rather than the media object itself.
In on-line music services a user can generate a list of music on a server. This list of music can be generated by collaborative filtering (as above), or by computing the similarity of a “seed” song to music available on the server. There are several limitations on such on-line music services, however. First, these services should adhere to the Digital Millennium Copyright Act. Therefore, generated lists cannot be fully under the control of the users. Second, the user can only select amongst items that are available on the service. The user may wish to generate lists of items that are owned by the user, so that the user can have full access to those items. Unfortunately, the on-line systems are incapable of assigning their descriptive metadata to arbitrary user items. Another limitation of on-line music services is that their similarity functions are hand-designed, rather than generated by a machine learning algorithm.
Client-side music jukeboxes will automatically generate lists of user items that are fully editable and playable by the user. However, these client-side music jukeboxes are limited in that they force the user to design complex rules that govern the playlist. The user interface for designing such rules is complicated and intimidating. Another limitation of these jukeboxes is that the descriptive metadata for the songs is typically only available if the user digitizes an entire CD of music. This is because songs can only be identified from the Table of Contents of an entire CD. Individual tracks cannot be identified and thus cannot undergo list processing. A further limitation of these jukeboxes is that the descriptive metadata generally available is limited to broad categories, such as genre. Such broad descriptive metadata is not very effective in generating good lists of items.